package ltd.ninefish.framework.core.utils.secure;

import cn.hutool.crypto.symmetric.SymmetricCrypto;

/**
 * @author zhaoxiubin
 * create-time 2023-11-17 17:36
 * description 国密sm4工具类
 **/

public class Sm4Utils {
    /**
     * 加密
     *
     * @param key 秘钥
     * @param data 明文
     * @return 密文
     */
    public static String encrypt(String key, String data) {
        SymmetricCrypto sm4 = new SymmetricCrypto("SM4/ECB/PKCS5Padding", key.getBytes());
        return sm4.encryptHex(data).toUpperCase();
    }

    /**
     * 解密
     *
     * @param key 秘钥
     * @param data 密文
     * @return 明文
     */
    public static String decrypt(String key, String data) {
        SymmetricCrypto sm4 = new SymmetricCrypto("SM4/ECB/PKCS5Padding", key.getBytes());
        return sm4.decryptStr(data);
    }
}
